Computer Science 351.01
Artificial Intelligence
Spring 2008
INSTRUCTOR: Tom Valente, Bagby 123, ext. 6210
MEETING TIMES: MWF
OFFICE HOURS: MWR
BOOKS:
Artificial Intelligence, Stuctures and Strategies for Complex Problem Solving,
5th Edition by George F. Luger.
LISP, 3rd Edition, by Patrick Henry Winston and Berthold Klaus Paul Horn.
COURSE DESCRIPTION:
Artificial Intelligence is a very broad area of Computer Science concerned with both creating programs that simulate what humans do when they are behaving “intelligently” and with using computer programs to help us better understand how the human brain works. Not surprisingly, the study of artificial intelligence can take one into many different subfields: machine vision, pattern recognition, robotics, natural language understanding, expert systems, game playing, theorem proving, machine learning, and planning, just to list a few. In applications such as these, one has to have ways to represent “knowledge” as data. Thus, computing with numbers is less important than computing with symbolic data such as words and sentences. The programming languages Lisp and (to a lesser extent in this country) Prolog have been the main players in programming AI applications. Lisp permits the programmer to interactively create and experiment with very flexible list structures “on the fly”. The elements of these lists can be “symbols” or lists themselves. Because these lists are flexible, very intricate relationships between symbols can be represented by them. We will take a good deal of time, especially in the first half of the semester, to master the Lisp language, so that we’ll be fluent by the time we get to studying Lisp programs that implement the algorithms discussed in the textbook. During the first half of the semester, I hope to gently use Prolog programs to embellish and bring to life some examples in the textbook where knowledge is being represented using the language you learned in Discrete Mathematics, namely the language of predicate calculus. Later in the semester, especially when planning and expert systems type examples are prevalent, we will spend more time actually studying the Prolog language.
Finally, it is reassuring to see that the data structures and algorithms we have studied in previous courses really are important in interesting application areas such as AI. Indeed, you’ll see again structures such as lists and trees and graphs, along with various “search” algorithms and strategies that are needed for processing these data structures.
LINKS:
A Java applet for the
15-puzzle
Can you HEAR an
8-puzzle solution?
Eight Queens (Wikipedia entry)
GRADING:
Homework 40%
Exams 30% Feb 22nd, April 4th
Final Presentation 20%
Quizzes
(programming languages) 10%
THE PLAN: Cover as much as possible of Luger’s Chapters 1-6 and 8 and learn enough Lisp and, later, Prolog, to program some of the A.I. applications.
Week of Luger LISP
Jan 16 Ch 1 Ch 1
Jan 21 Ch 2 Ch 2, Ch 3
Jan 28 Ch 2 Ch 4, Ch 5
Feb 4 Ch 3 Ch 6
Feb 11 Ch 3 Ch 7, Ch 11
Feb 18 Ch 4 Ch 19
Test
1 Feb 22nd
Feb 25 Ch 4 Ch 19
Mar 3 Ch 4 Ch 19
Mar 10 SPRING
BREAK
Mar 17 Ch 6
Mar 24 Ch 6
Mar 31 Ch 8, Ch 15 (PROLOG)
Test 2 Apr 4th
Apr 7 Ch 8, Ch 15 (PROLOG)
Apr 14 Ch 15 (PROLOG)
Apr 21 Ch 15 (PROLOG)
Apr 28 Ch 15 (PROLOG)
Student Presentations